/*************************************************************************
	> File Name:        wifi_direct_playback.h
	> Author:           MagicYang
	> Version:          1.0.1
	> Mail:             476080754@qq.com
	> Created Time:     2022-10-19 19:50:50
	> par Copyright (c):

	> par History:     
	> |  version  |    author    |     desc     |       data
	> |  1.0.1    |   MagicYang  |  create file |       2022-10-19
 ************************************************************************/

#ifndef _WIFI_DIRECT_PLAYBACK_H
#define _WIFI_DIRECT_PLAYBACK_H

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
    LV_STORAGE_RECORD_PLAN = 0,             // 计划录像
    LV_STORAGE_RECORD_ALARM = 1,            // 报警录像
    LV_STORAGE_RECORD_INITIATIVE = 2,       // 主动录像
    LV_STORAGE_RECORD_ANY = 99,             // 所有类型。
} lv_storage_record_type_e;                 // 如果不在这个范围内，则为用户自定义录像类型，由APP和设备侧自主协商含义，SDK不再明确列出具体类型.

typedef enum {
    LV_QUERY_RECORD_BY_DAY = 0,             // 查询当天的录像
    LV_QUERY_RECORD_BY_MONTH,               // 查询当月的录像
} lv_query_record_type_e;

typedef struct {
    struct {
        int service_id;                     // 服务ID
        lv_query_record_type_e type;        // 查询类型
    } common;
    struct {
        lv_storage_record_type_e type;      // 路线类型
        unsigned int start_time;            // 查询的开始时间，UTC时间，秒数
        unsigned int stop_time;             // 查询的结束时间，UTC时间，秒数
        unsigned int num;                   // 录像查询的数量,等于0的时候 请求时间范围内的全部录像
    } by_day;
    struct {
        char* month;                        // 查询的年月份，如201806
    } by_month;
} lv_query_record_param_s;

typedef struct {
    unsigned int start_time;                // 录像开始时间，UTC时间，单位为秒
    unsigned int stop_time;                 // 录像结束时间，UTC时间，单位为秒
    unsigned int file_size;                 // 录像的文件大小，单位字节
    char *file_name;                        // 录像的文件名
    lv_storage_record_type_e record_type;   // 录像类型
} lv_query_record_response_day;             // 结构体数组

/* 录像查询列表结构体 */
typedef struct {
    struct {
        unsigned int num;                   // 录像数量,days数组的长度
        lv_query_record_response_day *days;
    } by_day;
    struct {
        int *months;                        // months为int数组，长度为31.int值为0表示无录像，非0表示有录像,当前月份不足31天部分也置为0（如2月30）
    } by_month;
} lv_query_record_response_param_s;


void ali_query_record_time_list_cb(const void *auth, const lv_query_record_param_s *param);

#ifdef __cplusplus
}
#endif

#endif
